package com.liliudong.rommath.plugin.storage.service;

import cn.hutool.core.date.DateField;

import java.io.InputStream;

/**
 * 存储服务
 *
 * @author liliudong
 * @date 2025年01月04日 11:36
 */
public interface StorageService {

    /**
     * 上传对象
     *
     * @param objectKey   对象键
     * @param inputStream 输入流
     * @return {@link String }
     */
    String putObject(String objectKey, InputStream inputStream);

    /**
     * 生成预签名url
     *
     * @param objectKey  对象键
     * @param expiration 有效期
     * @param dateField   时间单位
     * @return {@link String }
     */
    String generatePresignedUrl(String objectKey, long expiration, DateField dateField);

    /**
     * 生成预签名url 默认10分钟有效期
     *
     * @param objectKey 对象键
     * @return {@link String }
     */
    String generatePresignedUrl(String objectKey);
}
